package GUI;


import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;
import magick.MagickException;
import magick.util.MagickCanvas;
import magick.util.MagickViewer;
import modelo.Imagen;
import modelo.ImagenObservable;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Agustin Ramirez Henandez
 */
public class VentanaInternaDeImagen extends JInternalFrame implements InternalFrameListener {
    private MagickCanvas visor;
    private String nombre;
    private ImagenObservable observable;
    
    public VentanaInternaDeImagen(Imagen imagen,ImagenObservable o) throws MagickException{
        this.observable=o;
        visor= new MagickCanvas();
        this.nombre=imagen.getNombre();
        Dimension d= new Dimension((int)imagen.getImagen().getDimension().getWidth()+10,
                        (int)imagen.getImagen().getDimension().getHeight()+10);
        Dimension d2= new Dimension((int)imagen.getImagen().getDimension().getWidth()+20,
                        (int)imagen.getImagen().getDimension().getHeight()+20);
        this.add(visor);
        this.visor.setImage(imagen.getImagen());
        this.visor.setSize(d);
        this.setSize(500,500);
        this.setTitle(imagen.getNombre());
        this.setMaximumSize(d2);
        this.setResizable(true);
        this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        this.setMaximizable(true);
        this.setClosable(true);
        this.setIconifiable(true);
        this.addInternalFrameListener(this);
    }

    public String getNombre() {
        return nombre;
    }

    public void internalFrameOpened(InternalFrameEvent e) {
        
    }

    public void internalFrameClosing(InternalFrameEvent e) {
        
    }

    public void internalFrameClosed(InternalFrameEvent e) {
        
    }

    public void internalFrameIconified(InternalFrameEvent e) {
       
    }

    public void internalFrameDeiconified(InternalFrameEvent e) {
        
    }

    public void internalFrameActivated(InternalFrameEvent e) {
        observable.setInfo(nombre);
        observable.setQuePaso(ImagenObservable.VENTANA_IMAGEN_FOCUS);
        this.repaint();
        this.visor.repaint();
    }

    public void internalFrameDeactivated(InternalFrameEvent e) {
        
    }

    public MagickCanvas getVisor() {
        return visor;
    }
    
}
